home *** CD-ROM | disk | FTP | other *** search
- package com.extensibility.mac;
-
- import com.apple.mrj.macos.toolbox.FSSpec;
- import com.apple.mrj.macos.toolbox.Str255;
- import com.extensibility.app.DialogFactory;
- import com.extensibility.app.UI;
- import com.extensibility.mac.jdirect.AEDataModelFunctions;
- import com.extensibility.mac.jdirect.AEDescListStruct;
- import com.extensibility.mac.jdirect.AEDescStruct;
- import com.extensibility.mac.jdirect.FSSpecHandleStruct;
- import com.extensibility.mac.jdirect.FSSpecStruct;
- import com.extensibility.mac.jdirect.MemoryFunctions;
- import com.extensibility.mac.jdirect.NavDialogOptionsStruct;
- import com.extensibility.mac.jdirect.NavEventClosureUPP;
- import com.extensibility.mac.jdirect.NavObjectFilterClosureUPP;
- import com.extensibility.mac.jdirect.NavPreviewClosureUPP;
- import com.extensibility.mac.jdirect.NavReplyRecordStruct;
- import com.extensibility.mac.jdirect.NavTypeListStruct;
- import com.extensibility.mac.jdirect.NavigationConstants;
- import com.extensibility.mac.jdirect.NavigationFunctions;
- import java.awt.Component;
- import java.io.File;
-
- public class MacFileDialogs extends DialogFactory implements NavigationConstants {
- static final boolean navServicesAvailable = NavigationFunctions.NavServicesAvailable();
-
- protected File doAskFile(Component var1, String var2, String[] var3, String var4) {
- return navServicesAvailable ? this.ns_doAskFile(var1, var2, var3, var4) : super.doAskFile(var1, var2, var3, var4);
- }
-
- private File ns_doAskFile(Component var1, String var2, String[] var3, String var4) {
- try {
- short var5 = 0;
- Object var20 = null;
- NavReplyRecordStruct var7 = new NavReplyRecordStruct();
- NavDialogOptionsStruct var8 = new NavDialogOptionsStruct();
- var5 = NavigationFunctions.NavGetDefaultDialogOptions(var8);
- if (var5 != 0) {
- throw new Exception(String.valueOf("NavGetDefaultDialogOptions: error ").concat(String.valueOf(var5)));
- } else {
- int var9 = var8.getDialogOptionFlags();
- var9 &= -129;
- var9 |= 4;
- var9 |= 2048;
- var8.setDialogOptionFlags(var9);
- if (var2 == null) {
- String var10 = "txt";
- if (var3.length > 0) {
- var10 = var3[0];
- }
-
- var2 = UI.getString("dialog.open.title", UI.getFileTypeName(var10));
- }
-
- var8.setMessage((new Str255(var2)).getBytes());
- int var24 = MemoryFunctions.NewHandleClear(12);
- NavTypeListStruct var11 = new NavTypeListStruct(var24);
- var11.setOsTypeCount((short)1);
- var11.setOsType(0, MacPlatform.TEXT_TYPE.toInt());
- var11.setComponentSignature(MacPlatform.CREATOR_CODE.toInt());
- var5 = NavigationFunctions.NavGetFile((AEDescStruct)var20, var7, var8, (NavEventClosureUPP)null, (NavPreviewClosureUPP)null, (NavObjectFilterClosureUPP)null, var11, 0);
- if (var5 == 0 && var7.getValidRecord()) {
- AEDescListStruct var25 = var7.getSelection();
- AEDescStruct var13 = new AEDescStruct();
- AEDataModelFunctions.AEGetNthDesc(var25, 1, 1718842144, new int[4], var13);
- FSSpecStruct var14 = new FSSpecStruct(new FSSpecHandleStruct(var13.getDataHandle()), 0);
- File var15 = (new FSSpec(var14)).toFile();
- DialogFactory.setFileDirectory(var15.getParent());
- return var15;
- } else if (var5 != -128) {
- throw new Exception(String.valueOf("NavGetFile: error ").concat(String.valueOf(var5)));
- } else {
- Object var12 = null;
- return (File)var12;
- }
- }
- } catch (Throwable var17) {
- var17.printStackTrace();
- System.err.flush();
- Object var6 = null;
- return (File)var6;
- }
- }
-
- protected File doAskNewFile(Component var1, String var2, String var3, String var4) {
- File var5;
- if (navServicesAvailable) {
- var5 = this.ns_doAskNewFile(var1, var2, var3, var4);
- } else {
- var5 = super.doAskNewFile(var1, var2, var3, var4);
- }
-
- return var5;
- }
-
- private File ns_doAskNewFile(Component var1, String var2, String var3, String var4) {
- try {
- short var5 = 0;
- Object var18 = null;
- NavReplyRecordStruct var7 = new NavReplyRecordStruct();
- NavDialogOptionsStruct var8 = new NavDialogOptionsStruct();
- var5 = NavigationFunctions.NavGetDefaultDialogOptions(var8);
- if (var5 != 0) {
- throw new Exception(String.valueOf("NavGetDefaultDialogOptions: error ").concat(String.valueOf(var5)));
- } else {
- int var9 = var8.getDialogOptionFlags();
- var9 |= 1;
- var8.setDialogOptionFlags(var9);
- if (var3 == null) {
- var3 = UI.getString("dialog.open.title", UI.getFileTypeName(var2));
- }
-
- var8.setMessage((new Str255(var3)).getBytes());
- var8.setSavedFileName((new Str255(String.valueOf("untitled.").concat(String.valueOf(var2)))).getBytes());
- var5 = NavigationFunctions.NavPutFile((AEDescStruct)var18, var7, var8, (NavEventClosureUPP)null, MacPlatform.TEXT_TYPE.toInt(), MacPlatform.CREATOR_CODE.toInt(), 0);
- if (var5 == 0 && var7.getValidRecord()) {
- AEDescListStruct var20 = var7.getSelection();
- AEDescStruct var11 = new AEDescStruct();
- AEDataModelFunctions.AEGetNthDesc(var20, 1, 1718842144, new int[4], var11);
- FSSpecStruct var12 = new FSSpecStruct(new FSSpecHandleStruct(var11.getDataHandle()), 0);
- File var13 = (new FSSpec(var12)).toFile();
- DialogFactory.setFileDirectory(var13.getParent());
- return var13;
- } else if (var5 != -128) {
- throw new Exception(String.valueOf("NavPutFile: error ").concat(String.valueOf(var5)));
- } else {
- Object var10 = null;
- return (File)var10;
- }
- }
- } catch (Throwable var15) {
- var15.printStackTrace();
- System.err.flush();
- Object var6 = null;
- return (File)var6;
- }
- }
- }
-